모의해킹
피버팅과터널링_10_리눅스 피버팅 도구
작성자 : Heehyeon Yoo|2025-12-20
# 모의해킹# PNT# Linux# sshuttle# RPivot
1. 개요
SSH 외에도 리눅스 환경에서 피버팅과 터널링을 수행할 수 있는 전문 도구들이 존재한다. 이들은 SSH 터널링의 한계(예: 루트 권한 필요 여부, 설정 복잡성 등)를 보완하거나, 보다 안정적인 리버스 터널링 기능을 제공한다. 본 문서에서는 대표적인 도구인 sshuttle과 RPivot에 대해 다룬다.
2. sshuttle: VPN over SSH
sshuttle은 "가난한 자의 VPN(Poor man's VPN)"이라 불리는 도구로, SSH 연결을 활용하여 마치 VPN에 접속한 것처럼 로컬 트래픽을 원격 네트워크로 투명하게 라우팅해준다.
2.1 특징 및 동작 원리
- Transparent Proxy: ProxyChains와 달리, 시스템의 라우팅 테이블(iptables 등)을 일시적으로 수정하여 트래픽을 가로채고 SSH 터널로 보낸다.
- No Admin on Remote: 원격(피벗) 서버에는 관리자(Root) 권한이 필요 없다. (단, 로컬 클라이언트에는 Root 권한 필요)
- Python 기반: 원격 서버에 Python만 설치되어 있으면 작동한다. SSH 연결이 맺어지면 원격에 임시 Python 어셈블리를 업로드하여 트래픽을 처리한다.
2.2 사용법
# 기본 구문: sshuttle -r [User]@[PivotHost] [TargetSubnet]
sudo sshuttle -r [email protected] 10.1.20.0/24
sudo: 로컬 라우팅 테이블 수정 권한 필요.-r: 원격 피벗 호스트 지정.10.1.20.0/24: 터널링할 대상 서브넷 대역.
명령 실행 후, 공격자 PC에서 10.1.20.0/24 대역으로 향하는 모든 트래픽은 자동으로 SSH 터널을 경유한다. 따라서 proxychains 접두어 없이 nmap이나 브라우저를 바로 사용할 수 있다.
3. RPivot: Reverse Gateway for SOCKS
RPivot은 리버스 SOCKS 프록시 기능을 제공하는 파이썬 기반 도구이다.
3.1 특징 및 활용
- Reverse SOCKS: 피벗 호스트가 공격자에게 접속(Server-Client 구조 역전)하여 터널을 뚫고, 공격자가 이 터널을 SOCKS 프록시로 활용하게 해준다.
- Dynamic Port Forwarding 대안: SSH의
-R다이나믹 포워딩 기능이 제한적이거나 불안정한 환경에서 유용하다. - HTTP-Proxy 호환성: NTLM 인증 프록시 등을 통과해야 나갈 수 있는 폐쇄망 환경에서 Zip 파일 형태로 라이브러리를 뭉쳐서 동작시킬 수 있다.
3.2 구성 (Server/Client)
RPivot은 Server(공격자 측)와 Client(피벗 호스트 측)로 구성된다.
- Server 실행 (공격자):
# --server-port: 피벗 호스트가 접속할 포트 (9999) # --proxy-port: 공격자가 사용할 SOCKS 포트 (1080) python server.py --server-port 9999 --proxy-port 1080 - Client 실행 (피벗 호스트):
# 공격자 서버로 접속 시도 python client.py --server-ip 10.8.0.2 --server-port 9999 - ProxyChains 연결:
공격자는 이제 로컬의1080포트를 SOCKS4 프록시로 설정하여 내부망에 접근할 수 있다.
3.3 설치 참고
# 공격자 및 피벗 호스트 양쪽에 필요
git clone https://github.com/klsecservices/rpivot.git
# 의존성 없이 Python 2.x/3.x 표준 라이브러리로 동작